// v2
// 改进优化：将方法添加到原型链，利用组合式继承，实现属性和原型链方法的继承

// 图片轮播类
var LoopImages = function(imgArr, container) {
  this.imagesArray = imgArr;  // 轮播图片数组
  this.container = container; // 轮播图片容器
}
LoopImages.prototype = {
  createImage() {
    console.log('LoopImages createImage function');
  },
  changeImage() {
    console.log('LoopImages changeImage function');
  }
}

// 上下滑动切换类（利用组合式继承）
var SliderLoopImg = function(imgArr, container) {
  // 构造函数继承图片轮播类
  LoopImages.call(this, imgArr, container);
}
SliderLoopImg.prototype = new LoopImages();
SliderLoopImg.prototype.changeImage = function() {
  console.log('SliderLoopImg changeImage function');
}

// 渐隐切换类
var FadeLoopImg = function(imgArr, container, arrow) {
  LoopImages.call(this, imgArr, container);
  // 切换箭头私有变量
  this.arrow = arrow;
}
FadeLoopImg.prototype = new LoopImages();
FadeLoopImg.prototype.changeImage = function() {
  console.log('FadeLoopImg changeImage function');
}


// 测试
var fadeImg = new FadeLoopImg([
  '01.jpg',
  '02.jpg',
  '03.jpg',
  '04.jpg'
], 'slide', [
  'left.jpg',
  'right.jpg'
]);
console.log(fadeImg.container);
fadeImg.changeImage();
